home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / O Boy / Source / Helpers_ut.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-21  |  1.3 KB  |  105 lines  |  [TEXT/R*ch]

  1. /*
  2.     Helpers_ut.h
  3.     © 1996 Bob Boylan
  4.     
  5.     Revision History
  6.     MacHack 1996        initial creation
  7. */
  8. #include "BaseTypes.h"
  9.  
  10. #include <string>
  11. #include <Palettes.h>
  12.  
  13. // As4CharString ... handy for translating DescTypes to char
  14. string
  15. As4CharString( Int_32 the4Chars );
  16.  
  17. // AsInt32 ... handy for getting an int out of a descriptor
  18. Int_32
  19. AsInt32 ( const AEDesc &inDesc );
  20.  
  21. // AsBoolean ... handy for getting a boolean out of a descriptor
  22. Boolean
  23. AsBoolean ( const AEDesc &inDesc );
  24.  
  25. // Asstring ... handy for getting a descriptor as a c++ string
  26. string
  27. Asstring ( const AEDesc    &inDesc );
  28.  
  29.  
  30.  
  31. // Stack Based state savers ...
  32. // color saver
  33. class    StColor
  34. {
  35. public:
  36.         StColor()
  37.         {
  38.             SaveFore(&_Fore);
  39.             SaveBack(&_Back);
  40.  
  41.         }
  42.         ~StColor()
  43.         {
  44.             RestoreFore(&_Fore);
  45.             RestoreBack(&_Back);
  46.         }
  47.         
  48.         void
  49.         Reset()
  50.         {
  51.             ForeColor(blackColor);
  52.             BackColor(whiteColor);
  53.         }
  54.         
  55.     ColorSpec    _Fore;
  56.     ColorSpec    _Back;
  57. };
  58.  
  59.  
  60. // pen state saver
  61. class    StPen
  62. {
  63. public:
  64.         StPen()
  65.         {
  66.             GetPenState(&_Pen);
  67.         }
  68.         ~StPen()
  69.         {
  70.             SetPenState(&_Pen);
  71.         }
  72.         void Reset()
  73.         {
  74.             _Color.Reset();
  75.             PenNormal();
  76.  
  77.         }
  78.                 
  79. private:
  80.     StColor        _Color;
  81.     PenState    _Pen;
  82. };
  83.  
  84.  
  85. // grafport saver
  86. class    StPort
  87. {
  88. public:
  89.         StPort( GrafPtr inPort = nil)
  90.         {
  91.             GetPort( &_Port );
  92.             if( inPort != nil )
  93.             {
  94.                 SetPort( inPort );
  95.             }
  96.         }
  97.         ~StPort()
  98.         {
  99.             SetPort( _Port );
  100.         }
  101.                 
  102. private:
  103.     GrafPtr        _Port;
  104. };
  105.